const db = require("../db")
const bcrypt = require("bcryptjs")

// 获取用户信息处理函数
module.exports.getUserInfo = function (req, res) {

    const sql = "select id,username,nickname,email,user_pic from ev_users where id = ?"

    db.query(sql, req.user.id, (err, result) => {
        if (err) return res.cc(err)
        if (result.length != 1) return res.cc('用户不存在')
        res.send({
            status: 0,
            message: "success",
            data: result[0]
        })
    })
}

// 更新用户信息处理函数
module.exports.updateUserInfo = function(req,res){
    const userinfo  = req.body

    const sql = "update ev_users set ? where id = ?"

    db.query(sql,[userinfo,userinfo.id],(err,result)=>{
        if(err) return res.cc(err)
        if(result.affectedRows!=1) return res.cc("更新用户信息失败")

        res.send({
            status:0,
            message:"更新成功"
        })
    })
}

// 更新用户密码处理函数
module.exports.updatePassword = function(req,res){
    // 1.接收数据   req.user
    
    // 2.获取数据库中密码信息
    const sql = "select * from ev_users where id = ?"
    db.query(sql,req.user.id,(err,result)=>{
        if(err) return res.cc(err)

        // 3.输入旧密码与数据库中的密码比较 
        const flag = bcrypt.compareSync(req.body.oldPwd,result[0].password)
        if(!flag) return res.cc("原密码错误")

        // 4.对新密码加密
        const newPassword = bcrypt.hashSync(req.body.newPwd,10)

        // 5.更新密码
        const sql = "update ev_users set password = ? where id = ?"
        db.query(sql,[newPassword,req.user.id],(err,result)=>{
            if(err) return res.cc(err)
            if(result.affectedRows !=1) return res.cc("更新密码失败")
            res.cc("更新密码成功",0)
        })

    })
    
}

// 更新用户头像处理函数
module.exports.updateAvatar = function(req,res){
    
    const sql = "update ev_users set user_pic = ? where id = ?"

    db.query(sql,[req.body.avatar,req.user.id],(err,result)=>{
        if(err) return res.cc(err)
        if(result.affectedRows !==1) return res.cc("更新用户头像失败")
        res.cc("更新用户头像成功",0)
    })
    
}
